﻿using Utils;
using static DataModels.Enums.AuthCore.UserEnum;
using static DataModels.Enums.GeneralEnum;

namespace DataModels.Dto.AuthCore
{
    public class EditUserInfo
    {
        [GeneralRequired]
        public Guid UUID { get; set; }
        public string AvatarUrl { get; set; }

        public string DisplayName { get; set; }

        public Gender Gender { get; set; }

        public DateTime Birthday { get; set; }
    }

    public class GetPaymentCouponInfo
    {
        public Status IsUsed { get; set; } = Status.Disable;

        public Status IsExpire { get; set; } = Status.Disable;
    }

    public class AddDeliveryAddress
    {
        /// <summary>
        /// 地址UUID
        /// </summary>
        public Guid? UUID { get; set; } = Guid.Empty;
        /// <summary>
        /// 收货人姓名
        /// </summary>
        [GeneralRequired]
        public string ContactPerson { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        [GeneralRequired]
        public string ContactPhone { get; set; }

        /// <summary>
        /// 省份/州
        /// </summary>
        [GeneralRequired]
        public string Province { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        [GeneralRequired]
        public string City { get; set; }

        /// <summary>
        /// 区县
        /// </summary>
        [GeneralRequired]
        public string District { get; set; }

        /// <summary>
        /// 详细地址
        /// </summary>
        [GeneralRequired]
        public string AddressDetail { get; set; }

        /// <summary>
        /// 邮政编码
        /// </summary>
        public string ZipCode { get; set; }

        /// <summary>
        /// 是否默认地址
        /// </summary>
        public Status IsDefault { get; set; } = Status.Disable;

        /// <summary>
        /// 地址标签（家、公司、学校等）
        /// </summary>
        public string AddressTag { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public decimal? Longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public decimal? Latitude { get; set; }
    }

    public class DelDeliveryAddress
    {
        /// <summary>
        /// 地址UUID
        /// </summary>
        [GeneralRequired]
        public Guid UUID { get; set; }
    }
}
